#ifndef FSTYPES_H
#define FSTYPES_H

namespace ntfs {

#ifdef CMD_LINUX

typedef unsigned long long ULONGLONG;
typedef long long LONGLONG;

typedef unsigned long ULONG;
typedef long LONG;

typedef unsigned short USHORT;
typedef short SHORT;

typedef unsigned char UCHAR, *PUCHAR;
typedef char CHAR, *PCHAR;

#endif

typedef unsigned long long UINT64, *PUINT64;
typedef long long INT64, *PINT64;

typedef unsigned long UINT32, *PUINT32;
typedef long INT32, *PINT32;

typedef unsigned short UINT16, *PUINT16;
typedef short INT16, *PINT16;

typedef unsigned char UINT8, *PUINT8;
typedef char INT8, *PINT8;

typedef bool BOOLEAN, *PBOOLEAN;

inline
bool CheckFSTypes()
{
    if (sizeof(INT8)   != 1) throw 1;
    if (sizeof(UINT8)  != 1) throw 1;
    if (sizeof(INT16)  != 2) throw 1;
    if (sizeof(UINT16) != 2) throw 1;
    if (sizeof(INT32)  != 4) throw 1;
    if (sizeof(UINT32) != 4) throw 1;
    if (sizeof(INT64)  != 8) throw 1;
    if (sizeof(UINT64) != 8) throw 1;
    return true;
}

//bool bCheckFS = CheckFSTypes();

}  //  namespace ntfs

#endif // FSTYPES_H
